<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // const的本质:
        //  const只能保证这个指针是固定的,至于里面的引用数值结构，就不能保证.

        const m = 10;
        // m = 20; // 常量不可修改
        console.log(m); //10

        // 使用const声明一个数组，数组是不能换掉，但数组里面的元素可以修改
        const a = [10,20,30];
        //a = ["aa","bb"]; // 常量a是不可更改的
        a[0] = 100; // 但是数组a中的元素是可以修改的。
        console.log(a); 


        // 使用const声明一个对象
        // 此对象永远绑定到了ob常量中，但对象内部的属性是可以修改
        const ob = {name:'zhangsan',age:20};
        ob.num = 300; // 添加属性
        delete ob.age; // 删除属性
        ob.name = "wangwu"; // 修改属性
        //ob = {name:"lisi"}; // 更换掉对象是不允许的。
        console.log(ob);


        // 结论：对象属性修改和数组元素变化不会触发const错误
        // 应用场景：声明对象类型使用const，非对象类型声明选择let


        //作为程序员我们追寻：快速敏捷式开发
    </script>
</body>
</html>